home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / prolog / brklyprl.lha / Emulator / Tests / nog.pl < prev    next >
Encoding:
Text File  |  1989-04-14  |  704 b   |  37 lines

  1.  
  2. /* Copyright (C) 1988, 1989 Herve' Touati, Aquarius Project, UC Berkeley */
  3.  
  4. main :- generate_no_garbage(_).
  5.  
  6. generate_no_garbage(Result) :- 
  7.     object(X),
  8.     link_copy(10000,X,Result,Link),
  9.     dummy(X,Result,Link).
  10.  
  11.  
  12. link_copy(0,_,Link,Link) :- !.
  13. link_copy(N,X,[CopyX|R],Link) :-
  14.     copy(X,CopyX),
  15.     N1 is N - 1,
  16.     link_copy(N1,X,R,Link).
  17.  
  18. object([[1,2,3],[4,5,6],[7,8,9]]).
  19.  
  20. copy(X,X) :- (atomic(X); var(X)), !.
  21. copy([A|B],[CopyA|CopyB]) :- !,
  22.     copy(A,CopyA),
  23.     copy(B,CopyB).
  24. copy(X,CopyX) :-
  25.     functor(X,Name,Arity),
  26.     functor(CopyX,Name,Arity),
  27.     copy(Arity,X,CopyX).
  28.  
  29. copy(0,_,_) :- !.
  30. copy(N,X,CopyX) :-
  31.     arg(N,X,Arg),
  32.     copy(Arg,CopyArg),
  33.     arg(N,CopyX,CopyArg),
  34.     N1 is N - 1,
  35.     copy(N1,X,CopyX).
  36.  
  37. dummy(_,_,_).